#include "n_pushbutton.h"
#include "widget.h"
#include <QEvent>
#include <random>
#include <QRandomGenerator>
#include <QLabel>
// 生成0-99的随机整数
N_PushButton::N_PushButton(QWidget *parent) : QPushButton(parent)
{
    // 创建热情表白字符串数组
    putLoves();
}
void N_PushButton::putLoves(){
        loveConfessions.push_back("不要拒绝我啊！能遇见你是我这辈子最幸运的事");
        loveConfessions.push_back("不要拒绝我啊！我每天都会想你无数遍");
        loveConfessions.push_back("不要拒绝我啊！你回我消息的时候是我最开心的时候");
        loveConfessions.push_back("不要拒绝我啊！你发的每条朋友圈我都看了无数遍");
        loveConfessions.push_back("不要拒绝我啊！我可以一直等你，等到你愿意接受我");
        loveConfessions.push_back("不要拒绝我啊！你不喜欢我也没关系，我会继续对你好");
        loveConfessions.push_back("不要拒绝我啊！你只要给我一点点回应我就很开心了");
        loveConfessions.push_back("不要拒绝我啊！我知道我配不上你，但我会努力变得更好");
        loveConfessions.push_back("不要拒绝我啊！你不需要现在回答我，我会用行动证明");
        loveConfessions.push_back("不要拒绝我啊！你忙完了记得找我，我随时都在");
        loveConfessions.push_back("不要拒绝我啊！只要你需要，我随时会出现");
        loveConfessions.push_back("不要拒绝我啊！我不在乎你有没有钱，我喜欢的是你这个人");
        loveConfessions.push_back("不要拒绝我啊！你什么样子我都喜欢，缺点我也爱");
        loveConfessions.push_back("不要拒绝我啊！给我个机会照顾你好不好？");
        loveConfessions.push_back("不要拒绝我啊！你不理我的时候，我做什么都没心思");
        loveConfessions.push_back("不要拒绝我啊！我愿为你付出我的一切");
        loveConfessions.push_back("不要拒绝我啊！你开心我就开心，你难过我更难过");
        loveConfessions.push_back("不要拒绝我啊！我会一直守护在你身边");
        loveConfessions.push_back("不要拒绝我啊！你是我生命中最重要的人");
        loveConfessions.push_back("不要拒绝我啊！没有你我的人生将失去色彩");
        loveConfessions.push_back("不要拒绝我啊！我会用一生去证明我的爱");
        loveConfessions.push_back("不要拒绝我啊！你愿意给我一个爱你的机会吗");
        loveConfessions.push_back("不要拒绝我啊！我会永远把你放在第一位");
        loveConfessions.push_back("不要拒绝我啊！你的幸福就是我的追求");
        loveConfessions.push_back("不要拒绝我啊！我会一直等，等到你愿意接受我的那一天");
}
void N_PushButton::enterEvent(QEvent* event)
{
    QWidget *parent = qobject_cast<QWidget*>(this->parent());
    if (!parent) return;
    // 查找父窗口中的目标控件
    QLabel *targetLabel = parent->findChild<QLabel*>("label");
    if(targetLabel)
    {
          targetLabel->setText(loveConfessions[i++]);
          this->setStyleSheet("#pushButton_no{"
                                "qproperty-icon: url(:/cry.png);"
                                "qproperty-iconSize: 32px 32px; " // 必须同时设置iconSize
                              "}"
                              );
          if(i==loveConfessions.size()) i%=loveConfessions.size();

    }
   // 计算可移动范围（确保按钮不会移出窗口）
    int maxX = parent->width() - this->width();
    int maxY = parent->height() - this->height();
    QRect tmp = targetLabel->geometry();
    int labely = tmp.y();
    int labelx = tmp.x();


   // 生成随机位置
    int newX = QRandomGenerator::global()->bounded(maxX);
    int newY = QRandomGenerator::global()->bounded(maxY);
    while(newX>labelx && newX<=labelx+tmp.width() || newY>labely && newY<=labely+tmp.height() ){
        newX = QRandomGenerator::global()->bounded(maxX);
        newY = QRandomGenerator::global()->bounded(maxY);
   }


    // 使用geometry移动
    this->setGeometry(newX, newY, this->width(), this->height());

}
